﻿#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
////联合类型的声明
//union Un
//{
//	char c;
//	int i;
//};
//int main()
//{
//	//联合变量的定义
//	union Un un = { 0 };
//	//计算连个变量的⼤⼩
//	printf("%zd\n", sizeof(un)); 
//	return 0;
//}


////代码1
//#include <stdio.h>
////联合类型的声明
//union Un
//{
//	char c;
//	int i;
//};
//int main()
//{
//	//联合变量的定义
//	union Un un = { 0 };
//	// 下⾯输出的结果是⼀样的吗？
//	printf("%p\n", &(un.i));
//	printf("%p\n", &(un.c));
//	printf("%p\n", &un);
//	return 0;
//}



////代码2
//#include <stdio.h>
////联合类型的声明
//union Un
//{
//	char c;
//	int i;
//};
//int main()
//{
//	//联合变量的定义
//	union Un un = { 0 };
//	un.i = 0x11223344;
//	un.c = 0x55;
//	printf("%x\n", un.i);
//	return 0;
//}


//struct S
//{
//	char c;
//	int i;
//};
//struct S s = { 0 };
//
//
//union Un
//{
//	char c;
//	int i;
//};
//union Un un = { 0 };


//#include <stdio.h>
//union Un1
//{
//	char c[5];
//	int i;
//};
//union Un2
//{
//	short c[7];
//	int i;
//};
//int main()
//{
//	//下⾯输出的结果是什么？
//	//char的对齐数为1，int为4，则Un1的最大对齐数为4，而char c[5]大小为5。总大小应该是最大对齐数的整数倍且要大于数组大小，8。
//	printf("%zd\n", sizeof(union Un1));
//	//short的对齐数为2，int为4，则Un2的最大对齐数为4，而short c[7]大小为14。总大小应该是最大对齐数的整数倍且要大于数组大小，16。
//	printf("%zd\n", sizeof(union Un2));
//	return 0;
//}


//struct gift_list
//{
//	//公共属性
//	int stock_number;//库存量
//	double price; //定价
//	int item_type;//商品类型
//	//特殊属性
//	char title[20];//书名
//	char author[20];//作者
//	int num_pages;//⻚数
//	char design[30];//设计
//	int colors;//颜⾊
//	int sizes;//尺⼨
//};


//struct gift_list
//{
//	int stock_number;//库存量
//	double price; //定价
//	int item_type;//商品类型
//	union {
//		struct
//		{
//			char title[20];//书名
//			char author[20];//作者
//			int num_pages;//⻚数
//		}book;
//		struct
//		{
//			char design[30];//设计
//		}mug;
//		struct
//		{
//			char design[30];//设计
//			int colors;//颜⾊
//			int sizes;//尺⼨
//		}shirt;
//	}item;
//};

//enum Day//星期
//{
//	Mon,
//	Tues,
//	Wed,
//	Thur,
//	Fri,
//	Sat,
//	Sun
//}; 
//
//enum Sex//性别
//{
//	MALE,
//	FEMALE,
//	SECRET
//};
//
//enum Color//颜⾊
//{
//	RED,
//	GREEN,
//	BLUE
//};

//enum Color//颜⾊
//{
//	RED = 2,
//	GREEN = 4,
//	BLUE = 8
//};

//enum Color//颜⾊
//{
//	RED = 1,
//	GREEN = 2,
//	BLUE = 4
//};
//enum Color clr = GREEN;//使⽤枚举常量给枚举变量赋值


//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//	int count = 1, temp = 1;
//	char buffer[109];
//	scanf("%s", buffer);
//	size_t len = strlen(buffer);
//	for (int i = 0; buffer[i] != '\0'; i++)
//	{
//		if (buffer[i + 1] != '\0' && buffer[i + 1] - buffer[i] > 0)
//		{
//			count++;
//		}
//
//		else {
//			temp = count > temp ? count : temp;
//			count = 1;
//			i += 1;
//		}
//	}
//
//	printf("%d", temp);
//	return 0;
//}



//#include <iostream>
//#include <string>
//using namespace std;
//void swap(int& a, int& b)
//{
//	int temp = a;
//	a = b;
//	b = temp;
//}
//int main()
//{
//	int a = 1, b = 3;
//	swap(a, b);
//	int& c = a;
//	int& d = c;
//	cout << a << " " << b;
//
//	return 0;
//}

#include <iostream>
using namespace std;
int& count()
{
	int n = 0;
	cout << &n << endl;
	n++;
	return n;
}

//int& count1()
//{
//	int n = 0;
//	cout << &n << endl;
//	n++;
//	return n;
//}

int main()
{
	int ret = count();
	cout << &ret << endl;

	int& ans = count();
	cout << &ans << endl;
	return 0;
}